//I type inst
`define INST_TYPE_I 7'b0010011
`define INST_ADDI 3'b000  //加
`define INST_SLTI 3'b010  //有符号比较大小
`define INST_SLTIU 3'b011 //无符号比较大小
`define INST_XORI 3'b100 //异或
`define INST_ORI 3'b110 //按位或
`define INST_ANDI 3'b111 //按位与
`define INST_SLLI 3'b001 //逻辑左移
`define INST_SRLI 3'b101 //逻辑右移
`define INST_SRAI 3'b101 //算术右移



//R and M type inst
`define INST_TYPE_R_M 7'b0110011 
//R type inst
`define INST_ADD_SUB 3'b000
`define INST_SLL 3'b001
`define INST_SLT 3'b010
`define INST_SLTU 3'b011
`define INST_XOR 3'b100
`define INST_SRL 3'b101
`define INST_SRA 3'b101
`define INST_OR 3'b110
`define INST_AND 3'b111



//J type inst
`define INST_NOP 32'h00000013
`define INST_NOP_OP 7'b0000001

//J type inst
`define INST_JAL 7'b1101111
`define INST_JALR 7'b1100111
`define INST_LUI 7'b0110111

`define INST_AUIPC 7'b0010111

// J TYPE INST
`define INST_TYPE_B 7'b1100011
`define INST_BEQ 3'b000
`define INST_BNE 3'b001
`define INST_BLT 3'b100
`define INST_BGE 3'b101
`define INST_BLTU 3'b110
`define INST_BGEU 3'b111


